package club.monkeywood.ad.dmp.tag

import org.apache.spark.sql.Row

object Tags4KeyWords extends Tags{
    /**
      * 打标签的方法定义
      * 从日志中提取关键词
      * 关键词要排除掉停用词库中的关键词，例如：电视剧、音乐等通用没有意义的关键词
      */
    override def makeTags(args: Any*): Map[String, Int] = {

        var map = Map[String, Int]()

        val row = args(0).asInstanceOf[Row]
        val stopWords = args(1).asInstanceOf[Map[String, Int]]


        val kws = row.getAs[String]("keywords")

        kws.split("\\|")
          .filter(kw => kw.trim.length >= 3 && kw.trim.length <= 8 && !stopWords.contains(kw.trim))
          .foreach(kw => map += "K"+kw.trim -> 1)

        map
    }
}
